/**
 * 推送直接打开连接功能
 * type    是10034
 * title   连接名字
 * url     连接地址
 *
 * 发送通知直接打开连接key-value
 * title   连接名字
 * url     连接地址
 *
 *
 */

/**
 * Created by 周涛 on 2017/7/7.
 */
//学生端
var HOME_PAGE_TYPE = 10001;
//首页轮播图
var NEW_STUDY_TYPE = 10002;
//新增课程：mooc
var NEW_STUDY_FREE_TYPE = 10055;
//新增课程：自由课程

var NEW_ZY_TYPE = 10003;
//有新的作业需要提交
var NEW_CY_TYPE = 10004;
//有新的测验需要提交
var NEW_PJ_TYPE = 10005;
//有新的评价需要提交
var TEACHER_ZY_TYPE = 10006;
//老师对你的作业做出了评分
var TEACHER_CY_TYPE = 10007;
//老师对你的测验做出了评分
var TEACHER_PJ_TYPE = 10008;
//三方评分出成绩
var QD_TYPE = 10009;
//课堂签到
var DC_TYPE = 10010;
//课堂调查
var TL_TYPE = 10011;
//课堂讨论
var TW_TYPE = 10040;
//课堂提问
var TEACHER_ZB_TYPE = 10012;
//教师对实习周报进行了评分
var TEACHER_YB_TYPE = 10013;
//教师对实习月报、进行了评分
var TEACHER_SB_TYPE = 10014;
//教师对实习实习报告进行了评分
var TEACHER_RB_TYPE = 10046;
//教师对日报进行了评分
var NEW_JOB_TYPE = 10015;
//上线了新的认证岗位
var NEW_RENZHENG_TYPE = 10016;
//更新了新的认证新闻内容
var RENZHENG_TONGGUO_TYPE = 10017;
//认证报名审核通过
var RENZHENG_NO_TONGGUO_TYPE = 10050;
//认证报名审核未通过
var EXAM_TONGGUO_TYPE = 10018;
//申请考试审核是通过
var EXAM_NO_TONGGUO_TYPE = 10051;
//申请考试审核是通过

var EXAM_BEFORE_DAY_TYPE = 10019;
//考试时间前一天
var EXAM_DAY_TYPE = 10020;
//考试时间当天  认证岗位名称考试已经开始，请于9:00-16:00参加考试
var EXAM_LATER_TYPE = 10021;
//考试时间过后有考试未参加
var EXAM_COMPLETE_TYPE = 10022;
//考试已经审阅完成
//教师端
var NEWS_CONTENT = 10023;
//资讯内容更新
var PUBLIC_COURSE = 10024;
//精品公开课有更新
var COURSE_CY = 10025;
//课程中有测验需要批卷
var COURSE_ZY = 10026;
//课程中有作业需要审阅
var COURSE_PJ = 10027;
//课程中有评价需要评分
var STUDENT_RB_TYPE = 10028;
//学生提交了日报
var STUDENT_ZB_TYPE = 10029;
//学生提交了周报
var STUDENT_YB_TYPE = 10030;
//学生提交了月报
var STUDENT_SB_TYPE = 10031;
//学生提交了实习报告
var NEW_PX_STATE = 10032;
//培训动态有更新
var NEW_PX = 10033;
//近期培训有更新
var OPEN_LINK = 10034;
//打开一个连接
var COURSE_DC = 10035;
//课程中有调查需要审阅
var TEACHER_DC_TYPE = 10036;
//老师对你的调查做出了评分
var NEW_DC_TYPE = 10037;
//有新的调查需要提交
var NEW_KH_TYPE = 10038;
//课程中有考核需要查看
var NEW_KH_SUBMIT_TYPE = 10039;
//有新的考核需要提交
var STUDENT_NEED_RB_TYPE = 10045;
//学生需要提交了日报
var STUDENT_NEED_ZB_TYPE = 10042;
//学生需要提交了周报
var STUDENT_NEED_YB_TYPE = 10043;
//学生需要提交了月报
var STUDENT_NEED_SB_TYPE = 10044;
//学生需要提交了实习报告

var STUDENT_NEED_QD_TYPE = 10047;
//学生签到
var TEACHER_QD_TYPE = 10048;
//老师查看签到
var TEACHER_ZY_TYPE_BH = 10049;
//老师对你的作业驳回
var COURSE_PUBLIC_TYPE = 10052;
//公共课程上线了新的课程，也许你会喜欢
var COURSE_NETWORK_TYPE = 10053;
//直播课程《课程名称》马上要开始了
var INTERNSHIP_PROGRAM = 10054;
//被加入某个实习计划
var COURSE_GROUP_DISCUSSION_CLOSED = 10055;
//课程小组讨论关闭
var COURSE_GROUP_DISCUSSION_SUMMARY = 10056;
//课程小组讨论小组长总结

/**l老师端的课堂*/
var VOTE_START_TYPE = 10057;
//课堂投票开始和结束，更新
var MUTUAL_START_TYPE = 10058;
//课堂互动开始和结束
var CLASS_TL_ONE_TYPE = 10059;
//课堂活动单条数据改版
/**企业师傅*/
var MASTER_NEW_STUDENT = 10060;
//企业师傅有一批新的实习生进入了该企业师傅的岗位实习
var MASTER_NEW_STUDENT_YB = 10061;
//实习生提交了月报
var MASTER_DO_SCORE = 10062;
//课堂圈申请结果
var MASTER_COURSE_ChAT = 10063;
//师傅评分
/**
 * 推送
 */
function pushIndex(data) {
	//  alertTest(data);
	var obj = null;
	var systemType = api.systemType;
	if (systemType == 'ios') {
		obj = eval('(' + data.message + ')');
	} else {
		obj = eval('(' + data.summary + ')');
	}
	//  alert("消息推送"+JSON.stringify(data));
	// console.log(JSON.stringify(data));
	//  alertTest(obj.type);
	switch (parseInt(obj.type)) {
		case HOME_PAGE_TYPE:
			//首页轮播图
			break;
		case NEW_STUDY_TYPE:
			//新增课程
			jiaoXueMessage(obj.jid, "1");
			break;
		case QD_TYPE:
		//新签到,进入详情
		case DC_TYPE:
		//调查,进入详情
		case TL_TYPE:
		//讨论,进入详情
		case TW_TYPE:
		//提问,进入详情
		case VOTE_START_TYPE:
		//课堂投票开始和结束
		case MUTUAL_START_TYPE:
			//课堂互动开始和结束
			classroomMessage(obj.iid, obj.type, obj.status, obj.internshipplanname, obj.jid, obj.pushuid);
			break;
		case CLASS_TL_ONE_TYPE:
			//课堂活动单条数据改版
			discussNewMessage(obj);
			break;
		case NEW_ZY_TYPE:
		//有新的作业需要提交
		case NEW_CY_TYPE:
		//有新的测验需要提交
		case NEW_PJ_TYPE:
		//有新的评价需要提交
		case NEW_DC_TYPE:
		//有新的调查需要提交
		case TEACHER_ZY_TYPE:
		//老师对你的作业做出了评分
		case TEACHER_CY_TYPE:
		//老师对你的测验做出了评分
		case TEACHER_DC_TYPE:
		//老师对你的调查做出了评分
		case TEACHER_PJ_TYPE:
		//老师对你的评价做出了评分
		case COURSE_CY:
		//课程中有测验需要批卷
		case COURSE_ZY:
		//课程中有作业需要审阅
		case COURSE_PJ:
		//课程中有评价需要评分
		case COURSE_DC:
		//课程中有评调查需要审阅
		case NEW_KH_TYPE:
		//课程中有考核需要查看
		case NEW_KH_SUBMIT_TYPE:
		//课程中有考核需要查看
		case TEACHER_RB_TYPE:
		//教师对实习周报进行了评分
		case TEACHER_ZB_TYPE:
		//教师对实习周报进行了评分
		case TEACHER_YB_TYPE:
		//教师对实习月报、进行了评分
		case TEACHER_SB_TYPE:
		//教师对实习实习报告进行了评分
		case STUDENT_RB_TYPE:
		//学生提交了日报
		case STUDENT_ZB_TYPE:
		//学生提交了周报
		case STUDENT_YB_TYPE:
		//学生提交了月报
		case STUDENT_SB_TYPE:
		//学生提交了实习报告
		case STUDENT_NEED_RB_TYPE:
		//学生需要提交日报
		case STUDENT_NEED_ZB_TYPE:
		//学生需要提交周报
		case STUDENT_NEED_YB_TYPE:
		//学生需要提交月报
		case STUDENT_NEED_SB_TYPE:
		//学生提要提交实习报告
		case NEW_JOB_TYPE:
		//上线了新的认证岗位
		case NEW_RENZHENG_TYPE:
		//更新了新的认证新闻内容
		case RENZHENG_TONGGUO_TYPE:
		//认证报名审核是否通过
		case EXAM_TONGGUO_TYPE:
		//申请考试审核是否通过
		case EXAM_BEFORE_DAY_TYPE:
		//考试时间前一天
		case EXAM_DAY_TYPE:
		//考试时间当天
		case EXAM_LATER_TYPE:
		//考试时间过后有考试未参加
		case EXAM_COMPLETE_TYPE:
		//考试已经审阅完成
		case NEWS_CONTENT:
		//资讯内容更新
		case PUBLIC_COURSE:
		//精品公开课有更新
		case NEW_PX_STATE:
		//培训动态有更新
		case NEW_PX:
			//近期培训有更新
			//处理教师的教学消息
			jiaoXueMessage(obj.jid, "1");
			break;

		case OPEN_LINK:
			//打开一个连接
			openLink(obj.url, obj.title, obj.islogin);
			break;
		case COURSE_GROUP_DISCUSSION_CLOSED:
		//课程小组讨论关闭
		case COURSE_GROUP_DISCUSSION_SUMMARY:
			//课程小组讨论小组长总结
			api.sendEvent({
				name : 'pushMessageGroupDiscussion',
				extra : {
					id : obj.iid, //小组id
					type : obj.type, //类型
					jid : obj.jid
				}
			});
			break;
	}
}

/**
 * 讨论详情新消息
 */
function discussNewMessage(msgData) {
	api.sendEvent({
		name : 'discussNewMessageNotifi',
		extra : msgData
	});
}

/**
 * 老师教学有新的消息
 */
function jiaoXueMessage(pushJid, msg) {
	consoleTest("pushJid : " + pushJid);
	//保存消息 学生或者教师
	consoleTest('cfnetppmessagejiaoxue' + pushJid);
	var type = $api.getStorage('cfnetSelectType');
	if (type != undefined && type == 1) {
		//保存教学 新消息提醒
		$api.setStorage('cfnetppmessagejiaoxue' + pushJid, msg);
	} else {
		//保存学习 新消息提醒
		$api.setStorage('cfnetppmessagexuexi' + pushJid, msg);
	}
	api.sendEvent({
		name : 'pushMessage'
	});
	api.sendEvent({
		name : 'pushMessage_index'
	});
}

/**
 * 学生课堂有新的消息
 */

function classroomMessage(id, type, status, name, jid, uid) {
	api.sendEvent({
		name : 'pushMessage_classroomMessage',
		extra : {
			id : id, //课堂活动id
			status : status, //0:未开始 1：开始，2：结束 3:点名
			type : type, //类型
			name : name, //名称
			jid : jid,
			uid : uid
		}
	});

}

/**
 * 打开一页面
 * @param url 连接地址
 * @param title 连接名称
 */
function openLink(url, title, islogin) {
	var pageParam = {
		url : isfreelogin(islogin, url),
		title : title,
		shareurl : url,
	};
	api.openWin({useWKWebView:true,
		name : 'indexLunDetailsWindow',
		url : './html/HomePage/indexLunDetailsWindow.html',
		pageParam : pageParam
	});

}

/**
 *绑定用户 传入uid
 * @param uid
 */
function bindAccount(uid) {
	//  updateMessageStatus();
	// var obj = api.require('aliPushNoUtdId');
	// var userid = "user_" + uid;
	// //绑定账号
	// obj.bindAccount({
	// 	account : userid
	// }, function(ret, err) {
	// 	alertTest(JSON.stringify(ret));
	// });
}

/**
 *
 * 取消绑定账号
 */
function unbindAccount() {
	// var obj = api.require('aliPushNoUtdId');
	// //取消绑定账号
	// obj.unbindAccount(function(ret, err) {
	// 	alertTest(JSON.stringify(ret));
	// });
}

var addTagSum = 0;
/**
 * 添加标签
 // * @param tags 标签数组
 */
function addTag(tags) {
	// if (tags != "" && tags != undefined) {
	// 	consoleTest("addTag");
	// 	var obj = api.require('aliPushNoUtdId');
	// 	consoleTest(tags);
	// 	//设置标签
	// 	obj.addTag({
	// 		target : 2,
	// 		tag : tags,
	// 		alias : ''
	// 	}, function(ret, err) {
	// 		if (!ret.status && addTagSum < 5) {
	// 			addTagSum++;
	// 			//addTag(tags)
	// 		} else {
	// 			consoleTest("addTag sum : " + addTagSum + " :jid:" + tags + "    :" + JSON.stringify(ret));
	// 			alertTest("addTag sum : " + addTagSum + +":11111111" + tags + "    :" + JSON.stringify(ret));
	// 		}
	// 	});
	// }

}

var removeTagSum = 0;
/**
 * 添加标签
 * @param tags 标签数组
 */
function removeTag(tags) {
	/*if (tags != "" && tags != undefined) {
		var obj = api.require('aliPushNoUtdId');
		consoleTest("removeTag");
		consoleTest(tags);
		//设置标签
		obj.removeTag({
			target : 2,
			tag : tags,
			alias : ''
		}, function(ret, err) {
			if (!ret.status && removeTagSum < 5) {
				removeTagSum++;
				removeTag(tags);
			} else {
				alertTest("removeTag sum : " + removeTagSum + " :jid:" + tags + "    :" + JSON.stringify(ret));
				consoleTest("removeTag sum : " + removeTagSum + " :jid:" + tags + "    :" + JSON.stringify(ret));
				alertTest(" removeTag error : " + JSON.stringify(err));
			}
		});
	}*/

}

function test() {
	//添加标签
	var tags = "ddfdfs";
	addTag(tags);
	//取消绑定账号
	unbindAccount();
	//绑定账号
	bindAccount(28277);
}

/**
 * 初始化推送
 */
function initpush() {
	/*var obj = api.require('aliPushNoUtdId');
    // isRegister();//引起崩溃bug
	//接收推送消息
	obj.addEventListener({
		name : 'onMessage'
	}, function(ret, err) {
		//接收到消息推送处理
		//          consoleTest("onMessage>>>addEventListener>>>>" + JSON.stringify(ret));
		alertTest("onMessage>>>addEventListener>>>>" + JSON.stringify(ret));
		pushIndex(ret);
	});

	obj.addEventListener({
		name : 'onNotificationOpened'
	}, function(ret, err) {
		alertTest("onNotificationOpened>>>addEventListener>>>>" + JSON.stringify(ret));
		consoleTest("onNotificationOpened>>>addEventListener>>>>" + JSON.stringify(ret));
		var systemType = api.systemType;
		//点击通知打开连接
		if (ret && ret != null && ret != undefined) {
			if (systemType == 'ios') {
				var data1 = ret.userInfo;
				openLink(data1.url, data1.title, data1.islogin);
			} else {
				var obj = eval('(' + ret.extraMap + ')');
				openLink(obj.url, obj.title, obj.islogin);
			}
		}
	});
	//删除通知
	obj.addEventListener({
		name : 'onNotificationRemoved'
	}, function(ret, err) {
		alertTest("onNotificationRemoved>>>addEventListener>>>>" + JSON.stringify(ret));
	});*/
}
//获取设备id
function getDeviceId() {
/* var aliPush = api.require('aliPushNoUtdId');
	aliPush.getDeviceId(function(ret, err) {
		alertTest(JSON.stringify(ret) + "  " + JSON.stringify(err));
		// console.log(JSON.stringify(ret));
	});*/
}
//获取是否注册阿里移动推送成功
function isRegister() {
  /* var aliPush = api.require('aliPushNoUtdId');
	aliPush.isRegister(function(ret, err) {
		alertTest(JSON.stringify(ret) + "  " + JSON.stringify(err));
		getDeviceId();
	});*/
}

/**
 * 登陆成功绑定账户 , 和班级标签
 */
function loginSucceedPush() {

	var uid = $api.getStorage('cfnetppuid');
	//登陆成功先取消绑定账户
	// unbindAccount();
	//绑定登陆账户
	bindAccount(uid);

}

/**
 * 绑定标签
 */
function bindTeacherOrStudent() {
	//读取现在身份
	var tags = $api.getStorage('cfnetSelectType');
	//type=0 学生 type=1 老师
	tags = "tors_" + tags;
	alertTest("tags : " + tags);
	consoleTest("addClassTag");
	//先取消绑定之前的tag
	var oldTags = $api.getStorage('cfnetpptorstags');
	if (oldTags != tags) {
		alertTest("oldTags : " + oldTags);
		consoleTest("removetag" + oldTags);
		removeTag(oldTags);
		//删除之前的标签
	}
	consoleTest("addtag" + tags);
	//绑定当前数据
	addTag(tags);
	//添加标签
	//保存数据到本地
	$api.setStorage('cfnetpptorstags', tags);
}

/**
 * 绑定集团
 */
function bindJidTag() {
	//绑定选择集团作为标签
	var tags = "";
	var stdydata = $api.getStorage('stdydatatags');
	if (stdydata == undefined) {
		return;
	}
	alertTest("stdydata : " + stdydata);
	consoleTest("bindJidTag : " + stdydata.length);
	//先取消绑定之前的tag
	var oldStdydata = $api.getStorage('cfnetppjidtags');
	if (oldStdydata != undefined && stdydata != undefined && oldStdydata != stdydata) {//如果这次读取和上次保存不一样
		alertTest("oldTags : " + oldStdydata.length);
		consoleTest("oldTags : " + oldStdydata.length);
		consoleTest("removetag" + oldStdydata);
		removeTag(oldStdydata);
		//删除之前的标签
	}
	consoleTest("addtag" + stdydata);
	//绑定当前数据
	//addTag(stdydata);//添加标签
	//保存数据到本地
	$api.setStorage('cfnetppjidtags', stdydata);
}

//控制显示 alert 和 打印日志功能
var isShow = false;

function alertTest(text) {
	if (isShow && text != undefined) {
		alert(text);
	}
}

function consoleTest(text) {
	if (isShow && text != undefined) {
		console.log(text);
	}
}

//更新消息状态接口
function updateMessageStatus() {
	var params = {
		uid : $api.getStorage('cfnetppuid'),
		jid : jid,
		type : $api.getStorage('cfnetSelectType'),
		sjid : $api.getStorage('cfnetppjid'),//实习 jid

	};
	//读取app消息
	cfnetppPOST(url_toDoMessage, params, false, function(data, status) {
		if (status == 'success') {
			// alert("data : " + JSON.stringify(data));
			if (data.code == 200) {//有新的消息
				jiaoXueMessage(jid, "1");
			} else {
				jiaoXueMessage(jid, "0");
			}
		}
	});
}

